package com.yuanguangsheng.disk.file.service;

import com.yuanguangsheng.disk.mybatis.entity.PtFileEntity;
import org.springframework.http.ResponseEntity;

import java.io.IOException;
import java.io.InputStream;
import java.util.List;

public interface FileIoService {
    /**
     * 文件类型 文件
     */
    Integer FILE_TYPE_FILE = 0;

    /**
     * 文件类型 文件夹
     */
    Integer FILE_TYPE_FOLDER = 1;

    /**
     *  文件分隔符
     */
    String FILE_SEPARATOR = "/";
    /**
     * 文件同步
     */
    void syncFileData();

    /**
     * 创建文件夹
     * @param parentId
     * @param folderName
     */
    void mkdirFileInfo(String parentId,String folderName);

    /**
     * 上传文件
     * @param parentId
     * @param fileName
     * @param inputStream
     */
    void uploadFile(String parentId, String fileName, InputStream inputStream);

    /**
     * 复制文件
     * @param parentId
     * @param srcUuidList
     */
    void copyFile(String parentId, String srcUuidList);

    /**
     * 文件下载
     * @param fileUuid
     * @return
     */
    ResponseEntity<byte[]> downFile(String fileUuid);

    /**
     * 获取文件分享地址
     * @param fileUuid
     * @return
     */
    String getShareUrl(String fileUuid);

    /**
     * 查询分享地址
     * @param fileUuid
     * @param fileValidity
     * @return
     */
    String queryShareUrl(String fileUuid, Integer fileValidity);
}